import Service from '../../../libs/service_0_0_6.js'
import DataStore from "./entity/DataStore.js"

document.addEventListener('DOMContentLoaded', async function() {
    document.querySelector('#button_download').addEventListener('click', function(event) {
        let textInputDownloadHar = document.querySelector('#text_input_download_har')
        let filename = textInputDownloadHar.value
        if (filename !== '') {
            Service.download(filename, Service.JsonStringify(dataStore.getList()))
        }
    })
 })

let dataStore = new DataStore()

/**
* Создание коллбэк функции с замыканием для передачи экземпляра класса DataStore.
* Без замыканя невозможно передать экземпляр класса в коллбэк-метод.
* @param {Object} inspectObject объект, содержимое которого будет выведено
*/
let callbackOnCompleted = function(object) {
  return function(details) {
    console.log('Запрос и ответ для добавления в список', details)
    object.addElemToList(details)
  };
};

let filterOnCompleted = {
                urls: ["<all_urls>"],
                types: [ chrome.webRequest.ResourceType.XMLHTTPREQUEST ]
             }

let optExtraInfoSpecOnCompleted = [ chrome.webRequest.OnCompletedOptions.RESPONSE_HEADERS ];

chrome.webRequest.onCompleted.addListener(
  callbackOnCompleted(dataStore), filterOnCompleted, optExtraInfoSpecOnCompleted
)